package com.liao.ticket.controller;

import com.liao.ticket.service.FlightService;
import com.liao.ticket.vo.Result;
import com.liao.ticket.vo.params.FlightParams;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

/**
 * 提供管理员使用
 * 管理员验证合法，且有访问权限时可使用
 * 接口测试成功
 * 1.0.0
 */
@RestController
@RequestMapping("flight")
public class FlightUpdateController {
    @Autowired
    private FlightService flightService;

    // 添加 航班    type 30
    @PostMapping("admin/add")
    public Result addOne(@RequestBody FlightParams flightParams) {
        return flightService.addOne(flightParams);
    }

    // 修改 航班 信息（所有） type 30
    @PostMapping("admin/update")
    public Result updateOneAllForAdmin(@RequestBody FlightParams flightParams) {
        return flightService.updateOneAll(flightParams);
    }

    // 修改 航班 信息（航班名，起飞地，降落地，里程，起飞机场id，起飞机场名，降落机场id，降落机场名）   type 30
    @PostMapping("airline/update")
    public Result updateOneInfoForAirLine(@RequestBody FlightParams flightParams) {
        return flightService.updateOneForAirLine(flightParams);
    }

    // 修改 航班 信息（起飞时间，降落时间，状态）   type 20 30
    @PostMapping("manager/update")
    public Result updateOneInfoForManager(@RequestBody FlightParams flightParams) {
        return flightService.updateOneInfoForManager(flightParams);
    }

    // 修改 航班 状态     type 20 30
    @PostMapping("manager/update/type")
    public Result updateOneTypeForManager(@RequestBody FlightParams flightParams) {
        return flightService.updateOneTypeForManager(flightParams);
    }

    // 通过 id 删除 航班      type 30
    @GetMapping("airline/delete/{id}")
    public Result deleteOne(@PathVariable Long id) {
        return flightService.deleteOne(id);
    }
}
